/*====================================================================================================*/
/*====================================================================================================*/
#include "drivers\stm32f3_system.h"
#include "drivers\stm32f3_adc.h"
#include "modules\module_ssd1331.h"

#include "uMultimeter.h"
/*====================================================================================================*/
/*====================================================================================================*/
void UM_Init( void )
{
  SystemInit();
  HAL_InitTick();

  UM_GPIO_Config();
  UM_ADC_Config();
  UM_SSD1331_Config();
}
/*====================================================================================================*/
/*====================================================================================================*/
#define VADC            3300.0  // 3300mV
#define ADC_R1          15000   // 15K
#define ADC_R2          2000    //  2K
#define VIN_MAX         (VADC * (ADC_R1 + ADC_R2) / ADC_R2)   //  2K
#define ADC_RESOLUTION  (VIN_MAX / 4096)   //  2K

void UM_Loop( void )
{
  uint16_t vol = 0;

  OLED_Clear(BLACK);
  OLED_PutStr_5x7(10, OLED_H >> 1, "AD = ", WHITE, BLACK);

  while(1) {
    LED_G_Toggle();
    delay_ms(100);

    vol = ADC_getData(1) * ADC_RESOLUTION;
    OLED_PutNum(10 + 5*6, OLED_H >> 1, Type_D, 5, vol, WHITE, BLACK);
  }
}
/*====================================================================================================*/
/*====================================================================================================*/
